Touch input detection along device sidewall

ABSTRACT

A touch input is detected. From a plurality of transmitters coupled to a propagating medium, propagating signals are emitted through the propagating medium. At a plurality of receivers coupled to the propagating medium, one or more of the propagating signals that have been disturbed by the touch input are received. The plurality of transmitters and the plurality of receivers are coupled to the propagating medium on an internal side of a device sidewall. One or more detected propagating signals that have been disturbed by the touch input are analyzed to identify the touch input on an external surface of the device sidewall.

BACKGROUND OF THE INVENTION

Electronic devices such as smartphones and tablet computers aretypically housed in metal and/or plastic housing to provide protectionand structure to the devices. The housing often includes openings toaccommodate physical buttons that are utilized to interface with thedevice. However, there is a limit to the number and types of physicalbuttons that are able to be included in some devices due to physical,structural, and usability constraints. For example, physical buttons mayconsume too much valuable internal device space and provide pathwayswhere water and dirt may enter a device to cause damage.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments of the invention are disclosed in the followingdetailed description and the accompanying drawings.

FIG. 1A is a diagram illustrating different views of a device with touchinput enabled housing.

FIG. 1B is a block diagram illustrating an embodiment of a system fordetecting a touch input surface disturbance.

FIG. 1C is a diagram illustrating an embodiment of a device housing withtouch input enabled sides.

FIG. 1D shows a magnified view of the cavity/pocket.

FIG. 1E shows transmitters and receivers mounted on fingers of a flexcable.

FIG. 2 is a block diagram illustrating an embodiment of a system fordetecting a touch input.

FIG. 3 is a flow chart illustrating an embodiment of a process forcalibrating and validating touch detection.

FIG. 4 is a flow chart illustrating an embodiment of a process fordetecting a user touch input.

FIG. 5 is a flow chart illustrating an embodiment of a process fordetermining a location associated with a disturbance on a surface.

FIG. 6 is a flow chart illustrating an embodiment of a process fordetermining time domain signal capturing of a disturbance caused by atouch input.

FIG. 7 is a flow chart illustrating an embodiment of a process comparingspatial domain signals with one or more expected signals to determinetouch contact location(s) of a touch input.

FIG. 8 is a flowchart illustrating an embodiment of a process forselecting a selected hypothesis set of touch contact location(s).

FIG. 9 is a flowchart illustrating an embodiment of a process ofdetermining a force associated with a user input.

FIG. 10 is a flowchart illustrating an embodiment of a process fordetermining an entry of a data structure used to determine a forceintensity identifier.

FIG. 11 includes graphs illustrating examples of a relationship betweena normalized amplitude value of a measured disturbance and an appliedforce.

FIG. 12 is a flowchart illustrating an embodiment of a process forproviding a combined force.

FIG. 13 is a flowchart illustrating an embodiment of a process forprocessing a user touch input.

DETAILED DESCRIPTION

The invention can be implemented in numerous ways, including as aprocess; an apparatus; a system; a composition of matter; a computerprogram product embodied on a computer readable storage medium; and/or aprocessor, such as a processor configured to execute instructions storedon and/or provided by a memory coupled to the processor. In thisspecification, these implementations, or any other form that theinvention may take, may be referred to as techniques. In general, theorder of the steps of disclosed processes may be altered within thescope of the invention. Unless stated otherwise, a component such as aprocessor or a memory described as being configured to perform a taskmay be implemented as a general component that is temporarily configuredto perform the task at a given time or a specific component that ismanufactured to perform the task. As used herein, the term ‘processor’refers to one or more devices, circuits, and/or processing coresconfigured to process data, such as computer program instructions.

A detailed description of one or more embodiments of the invention isprovided below along with accompanying figures that illustrate theprinciples of the invention. The invention is described in connectionwith such embodiments, but the invention is not limited to anyembodiment. The scope of the invention is limited only by the claims andthe invention encompasses numerous alternatives, modifications andequivalents. Numerous specific details are set forth in the followingdescription in order to provide a thorough understanding of theinvention. These details are provided for the purpose of example and theinvention may be practiced according to the claims without some or allof these specific details. For the purpose of clarity, technicalmaterial that is known in the technical fields related to the inventionhas not been described in detail so that the invention is notunnecessarily obscured.

Detecting a touch input along a one-dimensional axis is disclosed. Forexample, a touch location and touch pressure inputs are detected along aone-dimensional axis (e.g., lengthwise region) of a surface of a devicehousing without requiring physical movement/deflection of a detectioncomponent or surface of the device. This may allow one or more physicalbuttons of a device to be not required or augmented with touch inputdetectors that can detect touch inputs without the need to detectphysical movement/deflection of a detection component or surface of thedevice.

In some embodiments, a plurality of transmitters are coupled to apropagating housing medium and each transmitter is configured to emit apropagating signal through the propagating housing medium. A pluralityof receivers are coupled to the propagating housing medium, wherein thereceivers detect the propagating signals that have been disturbed by atouch input. The plurality of transmitters and the plurality ofreceivers are coupled to the propagating medium inline along aone-dimensional axis (e.g., lengthwise) of the propagating housingmedium. For example, when the propagating housing medium is touched at apoint along the one-dimensional axis, the emitted signal propagatingthrough the propagating housing medium is disturbed (e.g., the touchcauses an interference with the propagated signal). By processing thereceived signals, a location and a force on the surface of the housingassociated with the touch input are at least in part identified. Becausethe interaction between the material of the touch input and thepropagated signal is utilized to detect the signal, a mechanicaldeflection of a sensor is not required to detect either the location orthe force of the touch input. For example, the location and the force ofa touch input are able to be detected on a rigid metal side of asmartphone without a use of a physical button or a physical straingauge.

In various embodiments, the touch input includes a physical contact to asurface using a human finger, pen, pointer, stylus, and/or any otherbody parts or objects that can be used to contact or disturb thesurface. In some embodiments, the touch input includes an input gestureand/or a multi-touch input. In some embodiments, the received signal isused to determine one or more of the following associated with a touchinput: a gesture, a coordinate position, a time, a time frame, adirection, a velocity, a force magnitude, a proximity magnitude, apressure, a size, and other measurable or derived parameters.

Touch input detection described herein may be utilized to detect touchinputs on non-traditional surfaces such as metal that allows it to haveapplicability beyond touch screen displays. Various technologies havebeen traditionally used to detect a touch input on a display area. Themost popular technologies today include capacitive and resistive touchdetection technology. Using resistive touch technology, often a glasspanel is coated with multiple conductive layers that register toucheswhen physical pressure is applied to the layers to force the layers tomake physical contact. Using capacitive touch technology, often a glasspanel is coated with material that can hold an electrical chargesensitive to a human finger. By detecting the change in the electricalcharge due to a touch, a touch location can be detected. However, withresistive and capacitive touch detection technologies, the glass screenis required to be coated with a material that reduces the clarity of theglass screen. Additionally, because the entire glass screen is requiredto be coated with a material, manufacturing and component costs canbecome prohibitively expensive as larger screens are desired.

Another type of touch detection technology includes bending wavetechnology. One example includes the Elo Touch Systems Acoustic PulseRecognition, commonly called APR, manufactured by Elo Touch Systems of301 Constitution Drive, Menlo Park, Calif. 94025. The APR systemincludes transducers attached to the edges of a touchscreen glass thatpick up the sound emitted on the glass due to a touch. However, thesurface glass may pick up other external sounds and vibrations thatreduce the accuracy and effectiveness of the APR system to efficientlydetect a touch input. Another example includes the Surface AcousticWave-based technology, commonly called SAW, such as the Elo IntelliTouchPlus™ of Elo Touch Systems. The SAW technology sends ultrasonic waves ina guided pattern using reflectors on the surface of the touch screen todetect a touch. However, sending the ultrasonic waves in the guidedpattern increases costs and may be difficult to achieve. Additionally,because SAW must propagate on the surface, SAW transmitters andreceivers are typically mounted on the same surface where a touch inputis to be received. Detecting additional types of inputs, such asmulti-touch inputs, may not be possible or may be difficult using SAW orAPR technology.

FIG. 1A is a diagram illustrating different views of a device with touchinput enabled housing. Front view 130 of the device shows a frontdisplay surface of the device. Left side view 134 of the device shows anexample touch input external surface region 140 on a sidewall of thedevice where a touch input is able to be detected. For example, alocation and a force of a user touch input are able to be detected inregion 140 by detecting disturbances to transmitted signals in region140. By touch enabling the side of the device, one or more functionstraditionally served by physical buttons are able to be provided withoutthe use of physical buttons. For example, volume control inputs are ableto be detected on the side without the use of physical volume controlbuttons. Right side view 132 of the device shows touch input externalsurface region 142 on another sidewall of the device where a user touchinput can be detected. Although regions 140 and 142 have been shown assmooth regions, in various other embodiments one or more physicalbuttons, ports, and/or openings (e.g., SIM/memory card tray) may exist,or the region can be textured to provide an indication of the sensingregion. Touch input detection may be provided over surfaces of physicalbuttons, trays, flaps, switches, etc. by detecting transmitted signaldisturbances to allow touch input detection without requiring detectionof physical movement/deflection of a component of the device (e.g.,detect finger swiping over a surface of a physical button). In someembodiments, the touch input regions on the sides may be divided intodifferent regions that correspond to different functions. The touchinput provided in region 140 (and likewise in region 142) is detectedalong a one-dimensional axis. For example, a touch location is detectedas a position on its lengthwise axis without differentiating the widthof the object touching the sensing region. In an alternative embodiment,the width of the object touching the sensing region is also detected.Regions 140 and 142 correspond to regions beneath which touch inputtransmitters and sensors are located. Although two touch input regionson the housing of the device have been shown in FIG. 1A, other touchinput regions on the housing may exist in various other embodiments. Forexample, surfaces on top (e.g., surface on top view 136) and/or bottom(e.g., surface on bottom view 138) of the device are touch inputenabled. The shapes of touch input surfaces/regions on device sidewalls(e.g., regions 140 and 142) may be at least in part flat, at least inpart curved, at least in part angular, at least in part textured, and/orany combination thereof.

FIG. 1B is a block diagram illustrating an embodiment of a system fordetecting a touch input surface disturbance. In some embodiments, thesystem shown in FIG. 1B is included in the device shown in FIG. 1A. Forexample, FIG. 1B shows components utilized to detect a touch input on asidewall external surface 140 of FIG. 1A. In some embodiments, thesystem shown in FIG. 1B is included in a computing device, anentertainment device, a smartphone, a tablet computer, a point of saleterminal, a food and restaurant apparatus, a gaming device, a casinogame and application, a piece of furniture, a vehicle, an industrialapplication, a financial application, a medical device, an appliance,and any other objects or devices having a touch input surface.Propagating signal medium 102 is coupled to transmitters 104, 113, 106,116, and 110 and receivers/sensors 105, 108, 112, 114 and 118. Thelocations where transmitters 104, 113, 106, 116, and 110 and sensors105, 108, 112, 114 and 118 are located with respect to propagatingsignal medium 102 and with respect to each other, as shown in FIG. 1B,are merely an example. Likewise, the number of transmitters andreceivers need not be equal. In some embodiments, propagating signalmedium 102 is a part of a housing of a device. For example, thetransmitter and receivers are coupled to a sidewall of a housing of asmartphone device to detect touch inputs on the side of the device. Insome embodiments, the shown portion of propagating signal medium 102corresponds to touch input region 140 of FIG. 1A. For example, the shownelongated region of medium 102 corresponds to a region of a side of asmartphone device where touch input is able to be provided.

Other configurations of transmitter and sensor locations may exist invarious embodiments. Although FIG. 1B shows alternating transmitters andreceivers arranged inline, locations of transmitters and sensors may beintertwined and spaced and arranged in any configuration in variousother embodiments. The gap between transmitter 110 and sensor 112 maycorrespond to a location where a SIM/memory card opening is to belocated. Any number of transmitters and/or sensors may be utilized invarious embodiments. In some embodiments, rather than using a dedicatedtransmitter and a dedicated sensor, a transducer that acts as both atransmitter and a sensor is utilized. In various embodiments, thepropagating medium includes one or more of the following materials:polymer, plastic, wood, steel, metal and any medium that is able topropagate an acoustic or ultrasonic signal. For example, medium 102 is aportion of a metal sidewall/side-edge of a smartphone or a tabletcomputer device where a user is to hold the device. FIG. 1B only showstransmitters and sensors for one side of a device as an example andanother set of transmitters and sensors may be placed on another side ofthe device to detect inputs on this other side of the device (e.g., alsoconnected to touch detector 120). Objects of FIG. 1B are not drawn toscale.

Medium 102 includes a surface area where a user may touch to provide acommand input. In various embodiments, the touch input surface of medium102 is flat, curved, or combinations thereof. The touch input is to bedetected along a lengthwise region (e.g., locations in the region to beonly identified along a one-dimensional axis). A one-dimensionallocation and a force of a touch input along an external sidewall surfaceof the device may be detected without actuation of a physical button oruse of any other sensor that requires a physical deflection/movement ofa component of the device. For example, a user provides an input on theexternal surface of medium 102 that covers the shown transmitters andreceivers that are mounted on an opposite internal surface/side ofmedium 102 (e.g., mounted on an internal side of device sidewall insidea device and the touch input is provided on the other side of the devicesidewall that is the external surface of the device sidewall) and theinput disturbs a transmitted signal traveling within medium 102 (e.g.,by at least one of the shown transmitters) that is detected (e.g., by atleast one of the shown sensors) and analyzed to identify a location onthe external surface of medium 102 where the input was provided. Thisallows virtual buttons to be provided on a smooth side surface and anindication of a virtual button press is detected when a user appliespressure of sufficient force at a specific location of a virtual buttonon the side surface region. In some embodiments, a length of the axiswhere a touch input is able to be detected starts from an externalsurface over a mounting location of transmitter 104 to an externalsurface over a mounting location of sensor 118.

Examples of transmitters 104, 106, 110, 113 and 116 includepiezoelectric transducers, electromagnetic transducers, transmitters,sensors, and/or any other transmitters and transducers capable ofpropagating a signal through medium 102. Examples of sensors 105, 108,112, 114 and 118 include piezoelectric transducers, electromagnetictransducers, laser vibrometer transmitters, and/or any other sensors andtransducers capable of detecting a signal on medium 102. Although fivetransmitters and five sensors are shown, any number of transmitters andany number of sensors may be used in other embodiments. In the exampleshown, transmitters 104, 106, 110, 113 and 116 each may propagate asignal through medium 102. A signal emitted by a transmitter isdistinguishable from another signal emitted by another transmitter. Inorder to distinguish the signals, a phase of the signals (e.g., codedivision multiplexing), a frequency range of the signals (e.g.,frequency division multiplexing), or a timing of the signals (e.g., timedivision multiplexing) may be varied. One or more of sensors 105, 108,112, 114 and 118 receive the propagated signals.

Touch detector 120 (e.g., included and mounted on an internal circuitboard) is connected to at least the transmitters and sensors shown inFIG. 1B. In some embodiments, detector 120 includes one or more of thefollowing: an integrated circuit chip, a printed circuit board, aprocessor, and other electrical components and connectors. Detector 120determines and sends signals to be propagated by transmitters 104, 106,110, 113 and 116. Detector 120 also receives the signals detected bysensors 105, 108, 112, 114 and 118. The received signals are processedby detector 120 to determine whether a disturbance associated with auser input has been detected at a location on a surface of medium 102associated with the disturbance. Detector 120 is in communication withapplication system 122. Application system 122 uses information providedby detector 120. For example, application system 122 receives fromdetector 120 a location identifier and a force identifier associatedwith a user touch input that is used by application system 122 tocontrol configuration, setting or function of a device, operating systemand/or application of application system 122. For example, a userindication to increase volume is detected when a touch input ofsufficient pressure is detected within one range of locations along aone-dimensional axis, while a user indication to decrease volume isdetected when an input of sufficient pressure is detected within anotherrange of locations. Such regions can be fixed, or can be defined insoftware. For example, a right-handed user could have a region to changevolume assigned to the detection region on the left side of the case,whereas a left-handed user could reverse this assignment.

In some embodiments, application system 122 includes a processor and/ormemory/storage. In other embodiments, detector 120 and applicationsystem 122 are at least in part included/processed in a singleprocessor. An example of data provided by detector 120 to applicationsystem 122 includes one or more of the following associated with a userindication: a location coordinate along a one-dimensional axis, agesture, simultaneous user indications (e.g., multi-touch input), atime, a status, a direction, a velocity, a force magnitude, a proximitymagnitude, a pressure, a size, and other measurable or derivedinformation.

FIG. 1C is a diagram illustrating an embodiment of a device housing withtouch input enabled sides. Housing 152 shows a unibody back and sidehousing of an electronic device. For example, housing 152 may beutilized as a part of a housing for a smartphone device that houseselectrical components and is covered with a display glass surface.Transmitters 104, 106, 110, 113 and 116 and sensors 105, 108, 112, 114and 118 (also shown in FIG. 1B) have been mounted on an internalside/surface of a sidewall (e.g., sidewall internal surface/side facinginside the electronic device) of housing 152. Housing 152 may be made ofmetal (e.g., aluminum), plastics, ceramics, carbon fiber, or any othermaterial of propagating medium 102 of FIG. 1B. The transmitters andsensors are mounted on flex cable 154. Flex cable 154 includes patternedconductors that connect the transmitters and sensors/receivers to pinson connector 156. In some embodiments, connector 156 connects to acircuit board (not shown) that includes a touch detector (e.g., touchdetector 120) that provides/receives signals to/from thetransmitters/receivers. The transmitters and sensors/receivers of flexcable 154 are utilized to detect touch input on an external side surfaceof housing 152 over the region directly above and between thetransmitters and sensors/receivers of flex cable 154 (e.g., to detectlocation and force along a one-dimensional axis identifying lengthwiselocations on the external side surface). This allows the side surface ofhousing 152 to be touch sensitive to user inputs. Although housing 152does not show any physical buttons in the touch input surface, invarious other embodiments, one or more physical buttons may exist. Forexample, touch input detection may be provided on a surface of aphysical button (e.g., transmitter/sensor mounted behind/around aphysical button) to allow a user to provide a touch indication over asurface of a physical button without physically actuating the physicalbutton (e.g., detect swipe gesture over physical button).

Much like flex cable 154, flex cable 158 connects transmitters andsensors mounted on a second internal surface/side of a second sidewall(e.g., sidewall internal surface/side facing inside cavity of theelectronic device) to connector 160 (e.g., connects to the circuit boardthat includes touch detector 120 of FIG. 1B). The transmitters andsensors/receivers of flex cable 158 are utilized to detect touch inputon external side surface 162 of housing 152 over the region directlyabove and between the transmitters and sensors/receivers of flex cable158. This allows sidewall surface 162 to be touch sensitive to userinputs. In various embodiments, other transmitters and sensors/receiversmay be mounted on other internal walls and surfaces of housing 152 toallow touch inputs on other external surfaces of housing 152.

Although the shown transmitters and sensors/receivers have been directlymounted on flex cable 154 in a straight line along a strip/bar of flexcable 154, the sensors/receivers and transmitters may be mounted on aflex cable in various other embodiments. For example, FIG. 1E showstransmitters and receivers mounted on fingers of flex cable 162. Thismay allow flexibility in routing the flex cable around other internalcomponents of a device. For example, the fingers allow the flex cable tobe routed around openings and components to accommodate a switch,button, SIM/memory card tray, etc.

When manufacturing the configuration shown in FIG. 1C, it may beinefficient to individually attach each individual transmitter/sensoronto a flex cable. In some embodiments, transmitters and sensors arepositioned/placed on a stiffener bar (e.g., mounting template bar) thatassists in the positioning and alignment of the transmitters and sensorsand all of the transmitters and sensors on the stiffener bar areattached to a flex cable together at the same time using the stiffenerbar. Once transmitters/sensors are attached to the flex cable, each ofthe transmitters/sensors on the flex cable are attached to thepropagating medium/housing via an adhesive (e.g., epoxy). Thetransmitters and sensors shown in the example of FIG. 1C have beenplaced inside cavities/pockets etched on the internal side/surface ofsidewall of housing 152. FIG. 1D shows a magnified view of thecavity/pocket (e.g., 0.3 millimeter in depth). By placing eachtransmitter/sensor in the cavity, valuable internal space inside thehousing is maintained and the flex cable assembly with the transmittersand receivers is able to be mounted flush to the sidewall.

FIG. 2 is a block diagram illustrating an embodiment of a system fordetecting a touch input. In some embodiments, touch detector 202 isincluded in touch detector 120 of FIG. 1B. In some embodiments, thesystem of FIG. 2 is integrated in an integrated circuit chip. Touchdetector 202 includes system clock 204 that provides a synchronoussystem time source to one or more other components of detector 202.Controller 210 controls data flow and/or commands between microprocessor206, interface 208, DSP engine 220, and signal generator 212. In someembodiments, microprocessor 206 processes instructions and/orcalculations that can be used to program software/firmware and/orprocess data of detector 202. In some embodiments, a memory is coupledto microprocessor 206 and is configured to provide microprocessor 206with instructions.

Signal generator 212 generates signals to be used to propagate signalssuch as signals propagated by transmitters 104, 106, 110, 113, and 116of FIG. 1B. For example, signal generator 212 generates pseudorandombinary sequence signals that are converted from digital to analogsignals. Different signals (e.g., a different signal for eachtransmitter) may be generated by signal generator 212 by varying a phaseof the signals (e.g., code division multiplexing), a frequency range ofthe signals (e.g., frequency division multiplexing), or a timing of thesignals (e.g., time division multiplexing). In some embodiments,spectral control (e.g., signal frequency range control) of the signalgenerated by signal generator 212 is performed. For example,microprocessor 206, DSP engine 220, and/or signal generator 212determines a windowing function and/or amplitude modulation to beutilized to control the frequencies of the signal generated by signalgenerator 212. Examples of the windowing function include a Hanningwindow and raised cosine window. Examples of the amplitude modulationinclude signal sideband modulation and vestigial sideband modulation. Insome embodiments, the determined windowing function may be utilized bysignal generator 212 to generate a signal to be modulated to a carrierfrequency. The carrier frequency may be selected such that thetransmitted signal is an ultrasonic signal. For example, the transmittedsignal to be propagated through a propagating medium is desired to be anultrasonic signal to minimize undesired interference with sonic noiseand minimize excitation of undesired propagation modes of thepropagating medium. The modulation of the signal may be performed usinga type of amplitude modulation such as signal sideband modulation andvestigial sideband modulation to perform spectral control of the signal.The modulation may be performed by signal generator 212 and/or driver214. Driver 214 receives the signal from generator 212 and drives one ormore transmitters, such as transmitters 104, 106, 110, 113 and 116 ofFIG. 1B, to propagate signals through a medium.

A signal detected by a sensor/receiver such as sensor 105 of FIG. 1B isreceived by detector 202 and signal conditioner 216 conditions (e.g.,filters) the received analog signal for further processing. For example,signal conditioner 216 receives the signal outputted by driver 214 andperforms echo cancellation of the signal received by signal conditioner216. The conditioned signal is converted to a digital signal byanalog-to-digital converter 218. The converted signal is processed bydigital signal processor engine 220. For example, DSP engine 220separates components corresponding to different signals propagated bydifferent transmitters from the received signal and each component iscorrelated against a reference signal. The result of the correlation maybe used by microprocessor 206 to determine a location associated with auser touch input. For example, microprocessor 206 compares relativedifferences of disturbances detected in signals originating fromdifferent transmitters and/or received at different receivers/sensors todetermine the location.

In some embodiments, DSP engine 220 determines a location of a touchinput based on which signal path(s) in the propagating medium between atransmitter and a sensor have been affected by the touch input. Forexample, if the signal transmitted by transmitter 104 and directlyreceived at sensor 105 has been detected as disturbed by DSP engine 220,it is determined that a touch input has been received at a locationbetween a first surface location of the propagating medium directlyabove where transmitter 104 is coupled to the propagating medium and asecond surface location of the propagating medium directly above wheresensor 105 is coupled to the propagating medium. By spacing transmittersand receivers close enough together (e.g., space betweentransmitters/receivers is less than size of object providing touchinput) in areas where touch inputs are to be detected, the location ofthe touch input is able to be detected along an axis within spacingbetween the transmitters/receivers.

In some embodiments, DSP engine 220 correlates the converted signalagainst a reference signal to determine a time domain signal thatrepresents a time delay caused by a touch input on a propagated signal.In some embodiments, DSP engine 220 performs dispersion compensation.For example, the time delay signal that results from correlation iscompensated for dispersion in the touch input surface medium andtranslated to a spatial domain signal that represents a physicaldistance traveled by the propagated signal disturbed by the touch input.In some embodiments, DSP engine 220 performs base pulse correlation. Forexample, the spatial domain signal is filtered using a match filter toreduce noise in the signal. A result of DSP engine 220 may be used bymicroprocessor 206 to determine a location associated with a user touchinput. For example, microprocessor 206 determines a hypothesis locationwhere a touch input may have been received and calculates an expectedsignal that is expected to be generated if a touch input was received atthe hypothesis location and the expected signal is compared with aresult of DSP engine 220 to determine whether a touch input was providedat the hypothesis location.

Interface 208 provides an interface for microprocessor 206 andcontroller 210 that allows an external component to access and/orcontrol detector 202. For example, interface 208 allows detector 202 tocommunicate with application system 122 of FIG. 1B and provides theapplication system with location information associated with a usertouch input.

FIG. 3 is a flow chart illustrating an embodiment of a process forcalibrating and validating touch detection. In some embodiments, theprocess of FIG. 3 is used at least in part to calibrate and validate thesystem of FIGS. 1A-1E and/or the system of FIG. 2. At 302, locations ofsignal transmitters and sensors with respect to a surface aredetermined. For example, locations of transmitters and sensors shown inFIG. 1B are determined with respect to their location on a surface ofmedium 102. In some embodiments, determining the locations includesreceiving location information. In various embodiments, one or more ofthe locations may be fixed and/or variable.

At 304, signal transmitters and sensors are calibrated. In someembodiments, calibrating the transmitter includes calibrating acharacteristic of a signal driver and/or transmitter (e.g., strength).In some embodiments, calibrating the sensor includes calibrating acharacteristic of a sensor (e.g., sensitivity). In some embodiments, thecalibration of 304 is performed to optimize the coverage and improvesignal-to-noise transmission/detection of a signal (e.g., acoustic orultrasonic) to be propagated through a medium and/or a disturbance to bedetected. For example, one or more components of the system of FIGS.1A-1E and/or the system of FIG. 2 are tuned to meet a signal-to-noiserequirement. In some embodiments, the calibration of 304 depends on thesize and type of a transmission/propagation medium and geometricconfiguration of the transmitters/sensors. In some embodiments, thecalibration of step 304 includes detecting a failure or aging of atransmitter or sensor. In some embodiments, the calibration of step 304includes cycling the transmitter and/or receiver. For example, toincrease the stability and reliability of a piezoelectric transmitterand/or receiver, a burn-in cycle is performed using a burn-in signal. Insome embodiments, the step of 304 includes configuring at least onesensing device within a vicinity of a predetermined spatial region tocapture an indication associated with a disturbance using the sensingdevice. The disturbance is caused in a selected portion of the inputsignal corresponding to a selection portion of the predetermined spatialregion.

At 306, surface disturbance detection is calibrated. In someembodiments, a test signal is propagated through a medium such as medium102 of FIG. 1B to determine an expected sensed signal when nodisturbance has been applied. In some embodiments, a test signal ispropagated through a medium to determine a sensed signal when one ormore predetermined disturbances (e.g., predetermined touch) are appliedat a predetermined location. Using the sensed signal, one or morecomponents may be adjusted to calibrate the disturbance detection. Insome embodiments, the test signal is used to determine a signal that canbe later used to process/filter a detected signal disturbed by a touchinput.

In some embodiments, data determined using one or more steps of FIG. 3is used to determine data (e.g., formula, variable, coefficients, etc.)that can be used to calculate an expected signal that would result whena touch input is provided at a specific location on a touch inputsurface. For example, one or more predetermined test touch disturbancesare applied at one or more specific locations on the touch input surfaceand a test propagating signal that has been disturbed by the test touchdisturbance is used to determine the data (e.g., transmitter/sensorparameters) that is to be used to calculate an expected signal thatwould result when a touch input is provided at the one or more specificlocations.

At 308, a validation of a touch detection system is performed. Forexample, the system of FIGS. 1A-1E and/or FIG. 2 is tested usingpredetermined disturbance patterns to determine detection accuracy,detection resolution, multi-touch detection, and/or response time. Ifthe validation fails, the process of FIG. 3 may be at least in partrepeated and/or one or more components may be adjusted before performinganother validation.

FIG. 4 is a flow chart illustrating an embodiment of a process fordetecting a user touch input. In some embodiments, the process of FIG. 4is at least in part implemented on touch detector 120 of FIG. 1B and/ortouch detector 202 of FIG. 2.

At 402, a signal that can be used to propagate an active signal througha surface region is sent. In some embodiments, sending the signalincludes driving (e.g., using driver 214 of FIG. 2) a transmitter suchas a transducer (e.g., transmitter 104 of FIG. 1B) to propagate anactive signal (e.g., acoustic or ultrasonic) through a propagatingmedium with the surface region. In some embodiments, the signal includesa sequence selected to optimize autocorrelation (e.g., resulting innarrow/short peaks) of the signal. For example, the signal includes aZadoff-Chu sequence. In some embodiments, the signal includes apseudorandom binary sequence with or without modulation. In someembodiments, the propagated signal is an acoustic signal. In someembodiments, the propagated signal is an ultrasonic signal (e.g.,outside the range of human hearing). For example, the propagated signalis a signal above 20 kHz (e.g., within the range between 80 kHz to 1000kHz). In other embodiments, the propagated signal may be within therange of human hearing. In some embodiments, by using the active signal,a user input on or near the surface region can be detected by detectingdisturbances in the active signal when it is received by a sensor on thepropagating medium. By using an active signal rather than merelylistening passively for a user touch indication on the surface, othervibrations and disturbances that are not likely associated with a usertouch indication can be more easily discerned/filtered out. In someembodiments, the active signal is used in addition to receiving apassive signal from a user input to determine the user input.

When attempting to propagate a signal through a medium such as glass inorder to detect touch inputs on the medium, the range of frequenciesthat may be utilized in the transmitted signal determines the bandwidthrequired for the signal as well as the propagation mode of the mediumexcited by the signal and noise of the signal.

With respect to bandwidth, if the signal includes more frequencycomponents than necessary to achieve a desired function, then the signalis consuming more bandwidth than necessary, leading to wasted resourceconsumption and slower processing times.

With respect to the propagation modes of the medium, a propagationmedium such as metal likes to propagate a signal (e.g., anultrasonic/sonic signal) in certain propagation modes. For example, inthe A0 propagation mode of glass, the propagated signal travels in wavesup and down perpendicular to a surface of the glass (e.g., by bendingthe glass) whereas in the S0 propagation mode of glass, the propagatedsignal travels in waves up and down parallel to the glass (e.g., bycompressing and expanding the glass). A0 mode is desired over S0 mode intouch detection because a touch input contact on a glass surfacedisturbs the perpendicular bending wave of the A0 mode and the touchinput does not significantly disturb the parallel compression waves ofthe S0 mode. The example glass medium has higher order propagation modessuch as A1 mode and S1 mode that become excited with differentfrequencies of the propagated signals.

With respect to the noise of the signal, if the propagated signal is inthe audio frequency range of humans, a human user would be able to hearthe propagated signal which may detract from the user's user experience.If the propagated signal included frequency components that excitedhigher order propagation modes of the propagating medium, the signal maycreate undesirable noise within the propagating medium that makesdetection of touch input disturbances of the propagated signal difficultto achieve.

In some embodiments, the sending of the signal includes performingspectral control of the signal. In some embodiments, performing spectralcontrol on the signal includes controlling the frequencies included inthe signal. In order to perform spectral control, a windowing function(e.g., Hanning window, raised cosine window, etc.) and/or amplitudemodulation (e.g., signal sideband modulation, vestigial sidebandmodulation, etc.) may be utilized. In some embodiments, spectral controlis performed to attempt to only excite the A0 propagation mode of thepropagation medium. In some embodiments, spectral control is performedto limit the frequency range of the propagated signal to be within 50kHz to 1000 kHz.

In some embodiments, the sent signal includes a pseudorandom binarysequence. The binary sequence may be represented using a square pulse.However, modulated signal of the square pulse includes a wide range offrequency components due to the sharp square edges of the square pulse.In order to efficiently transmit the pseudorandom binary sequence, it isdesirable to “smooth out” sharp edges of the binary sequence signal byutilizing a shaped pulse. A windowing function may be utilized to“smooth out” the sharp edges and reduce the frequency range of thesignal. A windowing function such as Hanning window and/or raised cosinewindow may be utilized. In some embodiments, the type and/or one or moreparameters of the windowing function are determined based at least inpart on a property of a propagation medium such as medium 102 of FIG.1B. For example, information about propagation modes and associatedfrequencies of the propagation medium are utilized to select the typeand/or parameter(s) of the windowing function (e.g., to excite desiredpropagation mode and not excite undesired propagation mode). In someembodiments, a type of propagation medium is utilized to select the typeand/or parameter(s) of the windowing function. In some embodiments, adispersion coefficient, a size, a dimension, and/or a thickness of thepropagation medium is utilized to select the type and/or parameter(s) ofthe windowing function. In some embodiments, a property of a transmitteris utilized to select the type and/or parameter(s) of the windowingfunction.

In some embodiments, sending the signal includes modulating (e.g.,utilize amplitude modulation) the signal. For example, the desiredbaseband signal (e.g., a pseudorandom binary sequence signal) is desiredto be transmitted at a carrier frequency (e.g., ultrasonic frequency).In this example, the amplitude of the signal at the carrier frequencymay be varied to send the desired baseband signal (e.g., utilizingamplitude modulation). However, traditional amplitude modulation (e.g.,utilizing double-sideband modulation) produces an output signal that hastwice the frequency bandwidth of the original baseband signal.Transmitting this output signal consumes resources that otherwise do nothave to be utilized. In some embodiments, single-sideband modulation isutilized. In some embodiments, in single-sideband modulation, the outputsignal utilizes half of the frequency bandwidth of double-sidebandmodulation by not utilizing a redundant second sideband included in thedouble-sideband modulated signal. In some embodiments, vestigialsideband modulation is utilized. For example, a portion of one of theredundant sidebands is effectively removed from a correspondingdouble-sideband modulated signal to form a vestigial sideband signal. Insome embodiments, double-sideband modulation is utilized.

In some embodiments, sending the signal includes determining the signalto be transmitted by a transmitter such that the signal isdistinguishable from other signal(s) transmitted by other transmitters.In some embodiments, sending the signal includes determining a phase ofthe signal to be transmitted (e.g., utilize code divisionmultiplexing/CDMA). For example, an offset within a pseudorandom binarysequence to be transmitted is determined. In this example, eachtransmitter (e.g., transmitters 104, 106, 110, 113 and 116 of FIG. 1B)transmits a signal with the same pseudorandom binary sequence but with adifferent phase/offset. The signal offset/phase difference between thesignals transmitted by the transmitters may be equally spaced (e.g.,64-bit offset for each successive signal) or not equally spaced (e.g.,different offset signals). The phase/offset between the signals may beselected such that it is long enough to reliably distinguish betweendifferent signals transmitted by different transmitters. In someembodiments, the signal is selected such that the signal isdistinguishable from other signals transmitted and propagated throughthe medium. In some embodiments, the signal is selected such that thesignal is orthogonal to other signals (e.g., each signal orthogonal toeach other) transmitted and propagated through the medium.

In some embodiments, sending the signal includes determining a frequencyof the signal to be transmitted (e.g., utilize frequency divisionmultiplexing/FDMA). For example, a frequency range to be utilized forthe signal is determined. In this example, each transmitter (e.g.,transmitters 104, 106, 110, 113, and 116 of FIG. 1B) transmits a signalin a different frequency range as compared to signals transmitted byother transmitters. The range of frequencies that can be utilized by thesignals transmitted by the transmitters is divided among thetransmitters. In some cases, if the range of frequencies that can beutilized by the signals is small, it may be difficult to transmit all ofthe desired different signals of all the transmitters. Thus, the numberof transmitters that can be utilized with frequency divisionmultiplexing/FDMA may be smaller than can be utilized with code divisionmultiplexing/CDMA.

In some embodiments, sending the signal includes determining a timing ofthe signal to be transmitted (e.g., utilize time divisionmultiplexing/TDMA). For example, a time when the signal should betransmitted is determined. In this example, each transmitter (e.g.,transmitters 104, 106, 110, 113, and 116 of FIG. 1B) transmits a signalin different time slots as compared to signals transmitted by othertransmitters. This may allow the transmitters to transmit signals in around-robin fashion such that only one transmitter isemitting/transmitting at one time. A delay period may be insertedbetween periods of transmission of different transmitters to allow thesignal of the previous transmitter to sufficiently dissipate beforetransmitting a new signal of the next transmitter. In some cases, timedivision multiplexing/TDMA may be difficult to utilize in cases wherefast detection of touch input is desired because time divisionmultiplexing/TDMA slows down the speed of transmission/detection ascompared to code division multiplexing/CDMA.

At 404, the active signal that has been disturbed by a disturbance ofthe surface region is received. The disturbance may be associated with auser touch indication. In some embodiments, the disturbance causes theactive signal that is propagating through a medium to be attenuatedand/or delayed. In some embodiments, the disturbance in a selectedportion of the active signal corresponds to a location on the surfacethat has been indicated (e.g., touched) by a user.

At 406, the received signal is processed to at least in part determine alocation associated with the disturbance. In some embodiments,determining the location includes extracting a desired signal from thereceived signal at least in part by removing or reducing undesiredcomponents of the received signal such as disturbances caused byextraneous noise and vibrations not useful in detecting a touch input.In some embodiments, components of the received signal associated withdifferent signals of different transmitters are separated. For example,different signals originating from different transmitters are isolatedfrom other signals of other transmitters for individual processing. Insome embodiments, determining the location includes comparing at least aportion of the received signal (e.g., signal component from a singletransmitter) to a reference signal (e.g., reference signal correspondingto the transmitter signal) that has not been affected by thedisturbance. The result of the comparison may be used with a result ofother comparisons performed using the reference signal and othersignal(s) received at a plurality of sensors.

In some embodiments, receiving the received signal and processing thereceived signal are performed on a periodic interval. For example, thereceived signal is captured in 5 ms intervals and processed. In someembodiments, determining the location includes extracting a desiredsignal from the received signal at least in part by removing or reducingundesired components of the received signal such as disturbances causedby extraneous noise and vibrations not useful in detecting a touchinput.

In some embodiments, determining the location includes processing thereceived signal to determine which signal path(s) in the propagatingmedium between a transmitter and a sensor has been disturbed by a touchinput. For example, a received signal propagated between transmitter andsensor pair is compared with a corresponding reference signal (e.g.,corresponding to a no touch state) to determine whether the receivedsignal indicates that the received signal has been disturbed (e.g.,difference between the received signal and the corresponding referencesignal exceeds a threshold). By knowing which signal path(s) have beendisturbed, the location between the transmitter and the sensorcorresponding to the disturbed signal path can be identified as alocation of a touch input.

In some embodiments, determining the location includes processing thereceived signal and comparing the processed received signal with acalculated expected signal associated with a hypothesis touch contactlocation to determine whether a touch contact was received at thehypothesis location of the calculated expected signal. Multiplecomparisons may be performed with various expected signals associatedwith different hypothesis locations until the expected signal that bestmatches the processed received signal is found and the hypothesislocation of the matched expected signal is identified as the touchcontact location(s) of a touch input. For example, signals received bysensors (e.g., sensors 105, 108, 112, 114 and 118 of FIG. 1B) from oneor more transmitters (e.g., one or more of transmitters 104, 106, 110,113 and 116 of FIG. 1B) are compared with corresponding expected signalsto determine a touch input location (e.g., single or multi-touchlocations) that minimizes the overall difference between all respectivereceived and expected signals.

The location, in some embodiments, is a location (e.g., a locationidentified along a one-dimensional axis) on the surface region where auser has provided a touch input. In addition to determining thelocation, one or more of the following information associated with thedisturbance may be determined at 406: a gesture, simultaneous userindications (e.g., multi-touch input), a time, a status, a direction, avelocity, a force magnitude, a proximity magnitude, a pressure, a size,and other measurable or derived information. In some embodiments, thelocation is not determined at 406 if a location cannot be determinedusing the received signal and/or the disturbance is determined to be notassociated with a user input. Information determined at 406 may beprovided and/or outputted.

Although FIG. 4 shows receiving and processing an active signal that hasbeen disturbed, in some embodiments, a received signal has not beendisturbed by a touch input and the received signal is processed todetermine that a touch input has not been detected. An indication that atouch input has not been detected may be provided/outputted.

FIG. 5 is a flow chart illustrating an embodiment of a process fordetermining a location associated with a disturbance on a surface. Insome embodiments, the process of FIG. 5 is included in 406 of FIG. 4.The process of FIG. 5 may be implemented in touch detector 120 of FIG.1B and/or touch detector 202 of FIG. 2. In some embodiments, at least aportion of the process of FIG. 5 is repeated for one or morecombinations of transmitter and sensor pair. For example, for eachactive signal transmitted by a transmitter (e.g., transmitted bytransmitter 104, 106, 110, 113 or 116 of FIG. 1B), at least a portion ofthe process of FIG. 5 is repeated for one or more sensors (e.g., sensors105, 108, 112, 114, or 118 of FIG. 1B) receiving the active signal. Insome embodiments, the process of FIG. 5 is performed periodically (e.g.,5 ms periodic interval).

At 502, a received signal is conditioned. In some embodiments, thereceived signal is a signal including a pseudorandom binary sequencethat has been freely propagated through a medium with a surface that canbe used to receive a user input. For example, the received signal is thesignal that has been received at 404 of FIG. 4. In some embodiments,conditioning the signal includes filtering or otherwise modifying thereceived signal to improve signal quality (e.g., signal-to-noise ratio)for detection of a pseudorandom binary sequence included in the receivedsignal and/or user touch input. In some embodiments, conditioning thereceived signal includes filtering out from the signal extraneous noiseand/or vibrations not likely associated with a user touch indication.

At 504, an analog to digital signal conversion is performed on thesignal that has been conditioned at 502. In various embodiments, anynumber of standard analog to digital signal converters may be used.

At 506, a time domain signal capturing a received signal time delaycaused by a touch input disturbance is determined. In some embodiments,determining the time domain signal includes correlating the receivedsignal (e.g., signal resulting from 504) to locate a time offset in theconverted signal (e.g., perform pseudorandom binary sequencedeconvolution) where a signal portion that likely corresponds to areference signal (e.g., reference pseudorandom binary sequence that hasbeen transmitted through the medium) is located. For example, a resultof the correlation can be plotted as a graph of time within the receivedand converted signal (e.g., time-lag between the signals) vs. a measureof similarity. In some embodiments, performing the correlation includesperforming a plurality of correlations. For example, a coarsecorrelation is first performed then a second level of fine correlationis performed. In some embodiments, a baseline signal that has not beendisturbed by a touch input disturbance is removed in the resulting timedomain signal. For example, a baseline signal (e.g., determined at 306of FIG. 3) representing a measured signal (e.g., a baseline time domainsignal) associated with a received active signal that has not beendisturbed by a touch input disturbance is subtracted from a result ofthe correlation to further isolate effects of the touch inputdisturbance by removing components of the steady state baseline signalnot affected by the touch input disturbance.

At 508, the time domain signal is converted to a spatial domain signal.In some embodiments, converting the time domain signal includesconverting the time domain signal determined at 506 into a spatialdomain signal that translates the time delay represented in the timedomain signal to a distance traveled by the received signal in thepropagating medium due to the touch input disturbance. For example, atime domain signal that can be graphed as time within the received andconverted signal vs. a measure of similarity is converted to a spatialdomain signal that can be graphed as distance traveled in the medium vs.the measure of similarity.

In some embodiments, performing the conversion includes performingdispersion compensation. For example, using a dispersion curvecharacterizing the propagating medium, time values of the time domainsignal are translated to distance values in the spatial domain signal.In some embodiments, a resulting curve of the time domain signalrepresenting a distance likely traveled by the received signal due to atouch input disturbance is narrower than the curve contained in the timedomain signal representing the time delay likely caused by the touchinput disturbance. In some embodiments, the time domain signal isfiltered using a match filter to reduce undesired noise in the signal.For example, using a template signal that represents an ideal shape of aspatial domain signal, the converted spatial domain signal is matchfiltered (e.g., spatial domain signal correlated with the templatesignal) to reduce noise not contained in the bandwidth of the templatesignal. The template signal may be predetermined (e.g., determined at306 of FIG. 3) by applying a sample touch input to a touch input surfaceand measuring a received signal.

At 510, the spatial domain signal is compared with one or more expectedsignals to determine a touch input captured by the received signal. Insome embodiments, comparing the spatial domain signal with the expectedsignal includes generating expected signals that would result if a touchcontact was received at hypothesis locations. For example, a hypothesisset of one or more locations (e.g., single touch or multi-touchlocations) where a touch input might have been received on a touch inputsurface is determined, and an expected spatial domain signal that wouldresult at 508 if touch contacts were received at the hypothesis set oflocation(s) is determined (e.g., determined for a specific transmitterand sensor pair using data measured at 306 of FIG. 3). The expectedspatial domain signal may be compared with the actual spatial signaldetermined at 508. The hypothesis set of one or more locations may beone of a plurality of hypothesis sets of locations (e.g., exhaustive setof possible touch contact locations on a coordinate grid dividing atouch input surface).

The proximity of location(s) of a hypothesis set to the actual touchcontact location(s) captured by the received signal may be proportionalto the degree of similarity between the expected signal of thehypothesis set and the spatial signal determined at 508. In someembodiments, signals received by sensors from transmitters are comparedwith corresponding expected signals for each sensor/transmitter pair toselect a hypothesis set that minimizes the overall difference betweenall respective detected and expected signals. In some embodiments, oncea hypothesis set is selected, another comparison between the determinedspatial domain signals and one or more new expected signals associatedwith finer resolution hypothesis touch location(s) (e.g., locations on anew coordinate grid with more resolution than the coordinate grid usedby the selected hypothesis set) near the location(s) of the selectedhypothesis set is determined.

FIG. 6 is a flow chart illustrating an embodiment of a process fordetermining time domain signal capturing of a disturbance caused by atouch input. In some embodiments, the process of FIG. 6 is included in506 of FIG. 5. The process of FIG. 6 may be implemented in touchdetector 120 of FIG. 1B and/or touch detector 202 of FIG. 2.

At 602, a first correlation is performed. In some embodiments,performing the first correlation includes correlating a received signal(e.g., resulting converted signal determined at 504 of FIG. 5) with areference signal. Performing the correlation includes cross-correlatingor determining a convolution (e.g., interferometry) of the convertedsignal with a reference signal to measure the similarity of the twosignals as a time-lag is applied to one of the signals. By performingthe correlation, the location of a portion of the converted signal thatmost corresponds to the reference signal can be located. For example, aresult of the correlation can be plotted as a graph of time within thereceived and converted signal (e.g., time-lag between the signals) vs. ameasure of similarity. The associated time value of the largest value ofthe measure of similarity corresponds to the location where the twosignals most correspond. By comparing this measured time value against areference time value (e.g., at 306 of FIG. 3) not associated with atouch indication disturbance, a time delay/offset or phase differencecaused on the received signal due to a disturbance caused by a touchinput can be determined. In some embodiments, by measuring theamplitude/intensity difference of the received signal at the determinedtime vs. a reference signal, a force associated with a touch indicationmay be determined. In some embodiments, the reference signal isdetermined based at least in part on the signal that was propagatedthrough a medium (e.g., based on a source pseudorandom binary sequencesignal that was propagated). In some embodiments, the reference signalis at least in part determined using information determined duringcalibration at 306 of FIG. 3. The reference signal may be chosen so thatcalculations required to be performed during the correlation may besimplified. For example, the reference signal is a simplified referencesignal that can be used to efficiently correlate the reference signalover a relatively large time difference (e.g., lag-time) between thereceived and converted signal and the reference signal.

At 604, a second correlation is performed based on a result of the firstcorrelation. Performing the second correlation includes correlating(e.g., cross-correlation or convolution similar to step 602) a receivedsignal (e.g., resulting converted signal determined at 504 of FIG. 5)with a second reference signal. The second reference signal is a morecomplex/detailed (e.g., more computationally intensive) reference signalas compared to the first reference signal used in 602. In someembodiments, the second correlation is performed because using thesecond reference signal in 602 may be too computationally intensive forthe time interval required to be correlated in 602. Performing thesecond correlation based on the result of the first correlation includesusing one or more time values determined as a result of the firstcorrelation. For example, using a result of the first correlation, arange of likely time values (e.g., time-lag) that most correlate betweenthe received signal and the first reference signal is determined and thesecond correlation is performed using the second reference signal onlyacross the determined range of time values to fine tune and determinethe time value that most corresponds to where the second referencesignal (and, by association, also the first reference signal) matchedthe received signal. In various embodiments, the first and secondcorrelations have been used to determine a portion within the receivedsignal that corresponds to a disturbance caused by a touch input at alocation on a surface of a propagating medium. In other embodiments, thesecond correlation is optional. For example, only a single correlationstep is performed. Any number of levels of correlations may be performedin other embodiments.

FIG. 7 is a flow chart illustrating an embodiment of a process comparingspatial domain signals with one or more expected signals to determinetouch contact location(s) of a touch input. In some embodiments, theprocess of FIG. 7 is included in 510 of FIG. 5. The process of FIG. 7may be implemented in touch detector 120 of FIG. 1B and/or touchdetector 202 of FIG. 2.

At 702, a hypothesis of a number of simultaneous touch contacts includedin a touch input is determined. In some embodiments, when detecting alocation of a touch contact, the number of simultaneous contacts beingmade to a touch input surface (e.g., surface of medium 102 of FIG. 1B)is desired to be determined. For example, it is desired to determine thenumber of fingers touching a touch input surface (e.g., single touch ormulti-touch). In some embodiments, in order to determine the number ofsimultaneous touch contacts, the hypothesis number is determined and thehypothesis number is tested to determine whether the hypothesis numberis correct. In some embodiments, the hypothesis number is initiallydetermined as zero (e.g., associated with no touch input beingprovided). In some embodiments, determining the hypothesis number ofsimultaneous touch contacts includes initializing the hypothesis numberto be a previously determined number of touch contacts. For example, aprevious execution of the process of FIG. 7 determined that two touchcontacts are being provided simultaneously and the hypothesis number isset as two. In some embodiments, determining the hypothesis numberincludes incrementing or decrementing a previously determined hypothesisnumber of touch contacts. For example, a previously determinedhypothesis number is 2 and determining the hypothesis number includesincrementing the previously determined number and determining thehypothesis number as the incremented number (i.e., 3). In someembodiments, each time a new hypothesis number is determined, apreviously determined hypothesis number is iteratively incrementedand/or decremented unless a threshold maximum (e.g., 10) and/orthreshold minimum (e.g., 0) value has been reached.

At 704, one or more hypothesis sets of one or more touch contactlocations associated with the hypothesis number of simultaneous touchcontacts are determined. In some embodiments, it is desired to determinethe coordinate locations of fingers touching a touch input surface. Insome embodiments, in order to determine the touch contact locations, oneor more hypothesis sets are determined on potential location(s) of touchcontact(s) and each hypothesis set is tested to determine whichhypothesis set is most consistent with a detected data.

In some embodiments, determining the hypothesis set of potential touchcontact locations includes dividing a touch input surface into aconstrained number of locations (e.g., divide into location zones) wherea touch contact may be detected. For example, in order to initiallyconstrain the number of hypothesis sets to be tested, the touch inputsurface is divided into a coordinate grid with relatively large spacingbetween the possible coordinates. Each hypothesis set includes a numberof location identifiers (e.g., location coordinates) that match thehypothesis number determined in 702. For example, if two was determinedto be the hypothesis number in 702, each hypothesis set includes twolocation coordinates on the determined coordinate grid that correspondto potential locations of touch contacts of a received touch input. Insome embodiments, determining the one or more hypothesis sets includesdetermining exhaustive hypothesis sets that exhaustively cover allpossible touch contact location combinations on the determinedcoordinate grid for the determined hypothesis number of simultaneoustouch contacts. In some embodiments, a previously determined touchcontact location(s) of a previous determined touch input is initializedas the touch contact location(s) of a hypothesis set.

At 706, a selected hypothesis set is selected among the one or morehypothesis sets of touch contact location(s) as best corresponding totouch contact locations captured by detected signal(s). In someembodiments, one or more propagated active signals (e.g., signaltransmitted at 402 of FIG. 4) that have been disturbed by a touch inputon a touch input surface are received (e.g., received at 404 of FIG. 4)by one or more sensors such as sensors 105, 108, 112, 114 and 118 ofFIG. 1B. Each active signal transmitted from each transmitter (e.g.,different active signals each transmitted by transmitters 104, 106, 110,113 and 116 of FIG. 1B) is received by each sensor and may be processedto determine a detected signal (e.g., spatial domain signal determinedat 508 of FIG. 5) that characterizes a signal disturbance caused by thetouch input. In some embodiments, for each hypothesis set of touchcontact location(s), an expected signal is determined for each signalexpected to be received at one or more sensors. The expected signal maybe determined using a predetermined function that utilizes one or morepredetermined coefficients (e.g., coefficient determined for a specificsensor and/or transmitter transmitting a signal to be received at thesensor) and the corresponding hypothesis set of touch contactlocation(s). The expected signal(s) may be compared with correspondingdetected signal(s) to determine an indicator of a difference between allthe expected signal(s) for a specific hypothesis set and thecorresponding detected signals. By comparing the indicators for each ofthe one or more hypothesis sets, the selected hypothesis set may beselected (e.g., hypothesis set with the smallest indicated difference isselected).

At 708, it is determined whether additional optimization is to beperformed. In some embodiments, determining whether additionaloptimization is to be performed includes determining whether any newhypothesis set(s) of touch contact location(s) should be analyzed inorder to attempt to determine a better selected hypothesis set. Forexample, a first execution of step 706 utilizes hypothesis setsdetermined using locations on a larger distance increment coordinategrid overlaid on a touch input surface and additional optimization is tobe performed using new hypothesis sets that include locations from acoordinate grid with smaller distance increments. Additionaloptimizations may be performed any number of times. In some embodiments,the number of times additional optimizations are performed ispredetermined. In some embodiments, the number of times additionaloptimizations are performed is dynamically determined. For example,additional optimizations are performed until a comparison thresholdindicator value for the selected hypothesis set is reached and/or acomparison indicator for the selected hypothesis set does not improve bya threshold amount. In some embodiments, for each optimizationiteration, optimization may be performed for only a single touch contactlocation of the selected hypothesis set and other touch contactlocations of the selected hypothesis set may be optimized in asubsequent iteration of optimization.

If at 708 it is determined that additional optimization should beperformed, at 710, one or more new hypothesis sets of one or more touchcontact locations associated with the hypothesis number of the touchcontacts are determined based on the selected hypothesis set. In someembodiments, determining the new hypothesis sets includes determininglocation points (e.g., more detailed resolution locations on acoordinate grid with smaller distance increments) near one of the touchcontact locations of the selected hypothesis set in an attempt to refinethe one of the touch contact locations of the selected hypothesis set.The new hypothesis sets may each include one of the newly determinedlocation points, and the other touch contact location(s), if any, of anew hypothesis set may be the same locations as the previously selectedhypothesis set. In some embodiments, the new hypothesis sets may attemptto refine all touch contact locations of the selected hypothesis set.The process proceeds back to 706, whether or not a newly selectedhypothesis set (e.g., if previously selected hypothesis set stillcorresponds best to detected signal(s), the previously selectedhypothesis set is retained as the new selected hypothesis set) isselected among the newly determined hypothesis sets of touch contactlocation(s).

If at 708 it is determined that additional optimization should not beperformed, at 712, it is determined whether a threshold has beenreached. In some embodiments, determining whether a threshold has beenreached includes determining whether the determined hypothesis number ofcontact points should be modified to test whether a different number ofcontact points has been received for the touch input. In someembodiments, determining whether the threshold has been reached includesdetermining whether a comparison threshold indicator value for theselected hypothesis set has been reached and/or a comparison indicatorfor the selected hypothesis set did not improve by a threshold amountsince a previous determination of a comparison indicator for apreviously selected hypothesis set. In some embodiments, determiningwhether the threshold has been reached includes determining whether athreshold amount of energy still remains in a detected signal afteraccounting for the expected signal of the selected hypothesis set. Forexample, a threshold amount of energy still remains if an additionaltouch contact needs be included in the selected hypothesis set.

If at 712, it is determined that the threshold has not been reached, theprocess continues to 702 where a new hypothesis number of touch inputsis determined. The new hypothesis number may be based on the previoushypothesis number. For example, the previous hypothesis number isincremented by one as the new hypothesis number.

If at 712, it is determined that the threshold has been reached, at 714,the selected hypothesis set is indicated as the detected location(s) oftouch contact(s) of the touch input. For example, a locationcoordinate(s) of a touch contact(s) is provided.

FIG. 8 is a flowchart illustrating an embodiment of a process forselecting a selected hypothesis set of touch contact location(s). Insome embodiments, the process of FIG. 8 is included in 706 of FIG. 7.The process of FIG. 8 may be implemented in touch detector 120 of FIG.1B and/or touch detector 202 of FIG. 2.

At 802, for each hypothesis set (e.g., determined at 704 of FIG. 7), anexpected signal that would result if a touch contact was received at thecontact location(s) of the hypothesis set is determined for eachdetected signal and for each touch contact location of the hypothesisset. In some embodiments, determining the expected signal includes usinga function and one or more function coefficients to generate/simulatethe expected signal. The function and/or one or more functioncoefficients may be predetermined (e.g., determined at 306 of FIG. 3)and/or dynamically determined (e.g., determined based on one or moreprovided touch contact locations). In some embodiments, the functionand/or one or more function coefficients may be determined/selectedspecifically for a particular transmitter and/or sensor of a detectedsignal. For example, the expected signal is to be compared to a detectedsignal and the expected signal is generated using a function coefficientdetermined specifically for the pair of transmitter and sensor of thedetected signal. In some embodiments, the function and/or one or morefunction coefficients may be dynamically determined.

In some embodiments, in the event the hypothesis set includes more thanone touch contact location (e.g., multi-touch input), the expectedsignal for each individual touch contact location is determinedseparately and combined together. For example, an expected signal thatwould result if a touch contact was provided at a single touch contactlocation is added with other single touch contact expected signals(e.g., effects from multiple simultaneous touch contacts add linearly)to generate a single expected signal that would result if the touchcontacts of the added signals were provided simultaneously.

In some embodiments, the expected signal for a single touch contact ismodeled as the function:C*P(x−d)

where C is a function coefficient (e.g., complex coefficient), P(x) is afunction, and d is the total path distance between a transmitter (e.g.,transmitter of a signal desired to be simulated) to a touch inputlocation and between the touch input location and a sensor (e.g.,receiver of the signal desired to be simulated).

In some embodiments, the expected signal for one or more touch contactsis modeled as the function:Σ_(j=1) ^(N) C _(j) P(x−d _(j))

where j indicates which touch contact and N is the number of totalsimultaneous touch contacts being modeled (e.g., hypothesis numberdetermined at 702 of FIG. 7).

At 804, corresponding detected signals are compared with correspondingexpected signals. In some embodiments, the detected signals includespatial domain signals determined at 508 of FIG. 5. In some embodiments,comparing the signals includes determining a mean square error betweenthe signals. In some embodiments, comparing the signals includesdetermining a cost function that indicates the similarity/differencebetween the signals. In some embodiments, the cost function for ahypothesis set (e.g., hypothesis set determined at 704 of FIG. 7)analyzed for a single transmitter/sensor pair is modeled as:ε(r _(x) ,t _(x))=|q(x)−Σ_(j=1) ^(N) C _(j) P(x−d _(j))|²

where ε(r_(x), t_(x)) is the cost function, q(x) is the detected signal,and Σ_(j=1) ^(N) C_(j) P(x−d_(j)) is the expected signal. In someembodiments, the global cost function for a hypothesis set analyzed formore than one (e.g., all) transmitter/sensor pairs is modeled as:ε=Σ_(i=1) ^(Z)ε(r _(x) ,t _(x))_(i)

where ε is the global cost function, Z is the number of totaltransmitter/sensor pairs, i indicates the particular transmitter/sensorpair, and ε(r_(x), t_(x))_(i) is the cost function of the particulartransmitter/sensor pair.

At 806, a selected hypothesis set of touch contact location(s) isselected among the one or more hypothesis sets of touch contactlocation(s) as best corresponding to detected signal(s). In someembodiments, the selected hypothesis set is selected among hypothesissets determined at 704 or 710 of FIG. 7. In some embodiments, selectingthe selected hypothesis set includes determining the global costfunction (e.g., function ε described above) for each hypothesis set inthe group of hypothesis sets and selecting the hypothesis set thatresults in the smallest global cost function value.

FIG. 9 is a flowchart illustrating an embodiment of a process ofdetermining a force associated with a user input. The process of FIG. 9may be implemented on touch detector 120 of FIG. 1B and/or touchdetector 202 of FIG. 2.

At 902, a location associated with a user input on a touch input surfaceis determined. In some embodiments, at least a portion of the process ofFIG. 4 is included in step 702. For example, the process of FIG. 4 isused to determine a location associated with a user touch input.

At 904, one or more received signals are selected to be evaluated. Insome embodiments, selecting the signal(s) to be evaluated includesselecting one or more desired signals from a plurality of receivedsignals used to detect the location associated with the user input. Forexample, one or more signals received in step 404 of FIG. 4 areselected. In some embodiments, the selected signal(s) are selected basedat least in part on a signal-to-noise ratio associated with signals. Insome embodiments, one or more signals with the highest signal-to-noiseratio are selected. For example, when an active signal that ispropagated through a touch input surface medium is disturbed by a touchinput, the disturbed signal is detected/received at variousdetectors/sensors/receivers coupled to the medium. The receiveddisturbed signals may be subject to other undesirable disturbances suchas other minor vibration sources (e.g., due to external audio vibration,device movement, etc.) that also disturb the active signal. The effectsof these undesirable disturbances may be larger on received signals thatwere received further away from the location of the touch input.

In some embodiments, a variation (e.g., disturbance such as amplitudechange) detected in an active signal received at a receiver/sensor maybe greater at certain receivers (e.g., receivers located closest to thelocation of the touch input) as compared to other receivers. Forexample, in the example of FIG. 1B, touch input provided at a surfaceabove and between transmitter 106 and sensor 105 affects the signal pathbetween them and a signal received at sensor 105 from transmitter 106 isselected. Because sensor/receiver 105 is located closest to the touchinput location, it has received a disturbed signal with the largestamplitude variation that is proportional to the force of the touchinput. In some embodiments, the selected signals may have been selectedat least in part by examining the amplitude of a detected disturbance.For example, one or more signals with the highest amplitude associatedwith a detected touch input disturbance are selected. In someembodiments, based at least in part on a location determined in 902, oneor more signals received at one or more receivers located closest to thetouch input location are selected. In some embodiments, a plurality ofactive signals is used to detect a touch input location and/or touchinput force intensity. One or more received signals to be used todetermine a force intensity may be selected for each of the activesignals. In some embodiments, one or more received signals to be used todetermine the force intensity may be selected across the receivedsignals of all the active signals.

At 906, the one or more selected signals are normalized. In someembodiments, normalizing a selected signal includes adjusting (e.g.,scaling) an amplitude of the selected signal based on a distance valueassociated with the selected signal. For example, although anamount/intensity of force of a touch input may be detected by measuringan amplitude of a received active signal that has been disturbed by theforce of the touch input, other factors such as the location of thetouch input with respect to a receiver that has received the disturbedsignal and/or location of the transmitter transmitting the active signalmay also affect the amplitude of the received signal used to determinethe intensity of the force. In some embodiments, a distancevalue/identifier associated with one or more of the following is used todetermine a scaling factor used to scale a selected signal: a distancebetween a location of a touch input and a location of a receiver thathas received the selected signal, a distance between a location of atouch input and a location of a transmitter that has transmitted anactive signal that has been disturbed by a touch input and received asthe selected signal, a distance between a location of a receiver thathas received the selected signal and a location of a transmitter thathas transmitted an active signal that has been disturbed by a touchinput and received as the selected signal, and a combined distance of afirst distance between a location of a touch input and a location of areceiver that has received the selected signal and a second distancebetween the location of the touch input and a location of a transmitterthat has transmitted an active signal that has been disturbed by a touchinput and received as the selected signal. In some embodiments, each ofone or more selected signals is normalized by a different amount (e.g.,different amplitude scaling factors).

At 908, a force intensity identifier associated with the one or morenormalized signals is determined. The force intensity identifier mayinclude a numerical value and/or other identifier identifying a forceintensity. In some embodiments, if a plurality of normalized signals isused, an associated force may be determined for each normalized signaland the determined forces may be averaged and/or weighted-averaged todetermine the amount of the force. For example, in the case of weightedaveraging of the force values, each determined force value is weightedbased on an associated signal-to-noise ratio, an associated amplitudevalue, and/or an associated distance value between a receiver of thenormalized signal and the location of the touch input.

In some embodiments, the amount of force is determined using a measuredamplitude associated with a disturbed portion of the normalized signal.For example, the normalized signal represents a received active signalthat has been disturbed when a touch input was provided on a surface ofa medium that was propagating the active signal. A reference signal mayindicate a reference amplitude of a received active signal if the activesignal was not disturbed by a touch input. In some embodiments, anamplitude value associated with an amplitude change to the normalizedsignal caused by a force intensity of a touch input is determined. Forexample, the amplitude value may be a measured amplitude of adisturbance detected in a normalized signal or a difference between areference amplitude and the measured amplitude of the disturbancedetected in the normalized signal. In some embodiments, the amplitudevalue is used to obtain an amount/intensity of a force.

In some embodiments, the use of the amplitude value includes using theamplitude value to look up in a data structure (e.g., table, database,chart, graph, lookup table, list, etc.) a corresponding associated forceintensity. For example, the data structure includes entries associatinga signal disturbance amplitude value and a corresponding force intensityidentifier. The data structure may be predetermined/pre-computed. Forexample, for a given device, a controlled amount of force is applied andthe disturbance effect on an active signal due to the controlled amountof force is measured to determine an entry for the data structure. Theforce intensity may be varied to determine other entries of the datastructure. In some embodiments, the data structure is associated with aspecific receiver that received the signal included in the normalizedsignal. For example, the data structure includes data that has beenspecifically determined for characteristics of a specific receiver(e.g., for sensor/receiver 114 of FIG. 1B). In some embodiments, the useof the amplitude value to look up a corresponding force intensityidentifier stored in a data structure includes selecting a specific datastructure and/or a specific portion of a data structure corresponding tothe normalized signal and/or a receiver that received the signalincluded in the normalized signal. In some embodiments, the datastructure is associated with a plurality of receivers. For example, thedata structure includes entries associated with averages of datadetermined for characteristics of each receiver in the plurality ofreceivers. In this example, the same data structure may be used for aplurality of normalized signals associated with various receivers.

In some embodiments, the use of the amplitude value includes using theamplitude value in a formula that can be used to simulate and/orcalculate a corresponding force intensity. For example, the amplitudevalue is used as an input to a predetermined formula used to compute acorresponding force intensity. In some embodiments, the formula isassociated with a specific receiver that received the signal of thenormalized signal. For example, the formula includes one or moreparameters (e.g., coefficients) that have been specifically determinedfor characteristics of a specific receiver (e.g., for sensor/receiver114 of FIG. 1B). In some embodiments, the use of the amplitude value ina formula calculation includes selecting a specific formulacorresponding to the normalized signal and/or a receiver that receivedthe signal included in the normalized signal. In some embodiments, asingle formula is associated with a plurality of receivers. For example,a formula includes averaged parameter values of parameter values thathave been specifically determined for characteristics for each of thereceivers in the plurality of receivers. In this example, the sameformula may be used for a plurality of normalized signals associatedwith different receivers.

At 910, the determined force intensity identifier is provided. In someembodiments, providing the force intensity identifier includes providingthe identifier (e.g., a numerical value, an identifier within a scale,etc.) to an application such as an application of application system 122of FIG. 1B. In some embodiments, the provided force intensity identifieris provided with a corresponding touch input location identifierdetermined in step 406 of FIG. 4. In some embodiments, the providedforce intensity identifier is used to provide a user interfaceinteraction.

FIG. 10 is a flowchart illustrating an embodiment of a process fordetermining an entry of a data structure used to determine a forceintensity identifier. In some embodiments, the process of FIG. 10 isincluded in step 304 of FIG. 3. In some embodiments, the process of FIG.10 is used at least in part to create the data structure that may beused in step 908 of FIG. 9. In some embodiments, the process of FIG. 10is used at least in part to calibrate the system of FIG. 1B and/or thesystem of FIG. 2. In some embodiments, the process of FIG. 10 is used atleast in part to determine a data structure that can be included in oneor more devices to be manufactured to determine a force intensityidentifier/value corresponding to an amplitude value of a disturbancedetected in the received active signal. For example, the data structuremay be determined for a plurality of similar devices to be manufacturedor the data structure may be determined for a specific device takinginto account the manufacturing variation of the device.

At 1002, a controlled amount of force is applied at a selected locationon a touch input surface. In some embodiments, the force is provided ona location of a surface of medium 102 of FIG. 1B where a touch input maybe provided. In some embodiments, a tip of a physical human finger modelis pressing at the surface with a controllable amount of force. Forexample, a controlled amount of force is applied on a touch inputsurface while an active signal is being propagated through a medium ofthe touch input surface. The amount of force applied in 1002 may be oneof a plurality of different amounts of force that will be applied on thetouch input surface.

At 1004, an effect of the applied force is measured using one or moresensor/receivers. In some embodiments, measuring the effect includesmeasuring an amplitude associated with a disturbed portion of an activesignal that has been disturbed when the force was applied in 1002 andthat has been received by the one or more receivers. The amplitude maybe a directly measured amplitude value or a difference between areference amplitude and a detected amplitude. In some embodiments, thesignal received by the one or more receivers is normalized before theamplitude is measured. In some embodiments, normalizing a receivedsignal includes adjusting (e.g., scaling) an amplitude of the signalbased on a distance value associated with the selected signal.

A reference signal may indicate a reference amplitude of a receivedactive signal that has not been disturbed by a touch input. In someembodiments, an amplitude value associated with an amplitude changecaused by a disturbance of a touch input is determined. For example, theamplitude value may be a measured amplitude value of a disturbancedetected in a normalized signal or a difference between a referenceamplitude and the measured amplitude value of the disturbance detectedin the normalized signal. In some embodiments, the amplitude value isused to obtain an identifier of a force intensity.

In some embodiments, a distance value associated with one or more of thefollowing is used to determine a scaling factor used to scale a receivedsignal before an effect of a disturbance is measured using the receivedsignal: a distance between a location of a touch input and a location ofa receiver that has received the selected signal, a distance between alocation of the force input and a location of a transmitter that hastransmitted an active signal that has been disturbed by the force inputand received by the receiver, a distance between a location of thereceiver and a location of a transmitter that has transmitted an activesignal that has been disturbed by the force input and received by thereceiver, and a combined distance of a first distance between a locationof a force input and a location of the receiver and a second distancebetween the location of the force input and a location of a transmitterthat has transmitted an active signal that has been disturbed by theforce input and received by the receiver. In some embodiments, each ofone or more signals received by different receivers is normalized by adifferent amount (e.g., different amplitude scaling factors).

At 1006, data associated with the measured effect is stored. In someembodiments, storing the data includes storing an entry in a datastructure such as the data structure that may be used in step 908 ofFIG. 9. For example, an entry that associates the amplitude valuedetermined in 1004 and an identifier associated with an amount of forceapplied in 1002 is stored in the data structure. In some embodiments,storing the data includes indexing the data by an amplitude valuedetermined in 1004. For example, the stored data may be retrieved fromthe storage using the amplitude value. In some embodiments, the datastructure is determined for a specific signal receiver. In someembodiments, a data structure is determined for a plurality of signalreceivers. For example, data associated with the measured effect onsignals received at each receiver of a plurality of receivers isaveraged and stored. In some embodiments, storing the data includesstoring the data in a format that can be used to generate a graph suchas the graph of FIG. 11.

In some embodiments, the process of FIG. 10 is repeated for differentapplied force intensities, different receivers, different forceapplication locations, and/or different types of applied forces (e.g.,different force application tip). Data stored from the repeatedexecution of the steps of FIG. 10 may be used to fill the data structurethat may be used in step 908 of FIG. 9.

FIG. 11 includes graphs illustrating examples of a relationship betweena normalized amplitude value of a measured disturbance and an appliedforce. Graph 1100 plots an applied force intensity (in grams of force)of a touch input vs. a measured amplitude of a disturbance caused by theapplied force for a single receiver. Graph 1102 plots an applied forceintensity of a touch input vs. a measured amplitude of a disturbancecaused by the applied force for different receivers. The plots of thedifferent receivers may be averaged and combined into a single plot. Insome embodiments, graph 1100 and/or graph 1102 may be derived from datastored in the data structure that may be used in step 908 of FIG. 9. Insome embodiments, graph 1100 and/or graph 1102 may be generated usingdata stored in step 1006 of FIG. 10. Graphs 1100 and 1102 show thatthere exists an increasing functional relationship between measuredamplitude and applied force. Using a predetermined graph, datastructure, and/or formula that models this relationship, an associatedforce intensity identifier may be determined for a given amplitude value(e.g., such as in step 908 of FIG. 9).

FIG. 12 is a flowchart illustrating an embodiment of a process forproviding a combined force. The process of FIG. 12 may be implemented ontouch detector 120 of FIG. 1B and/or touch detector 202 of FIG. 2.

At 1202, forces associated with each touch input location point of aplurality of touch input location points are determined. In someembodiments, a user touch input may be represented by a plurality oftouch input locations (e.g., multi-touch input, touch input covering arelatively large area, etc.). In some embodiments, for each touch inputlocation point, at least a portion of the process of FIG. 9 is used todetermine an associated force. For example, a force intensity identifieris determined for each input location in the plurality of touch inputlocations.

At 1204, the determined forces are combined to determine a combinedforce. For example, the combined force represents a total amount offorce applied on a touch input surface. In some embodiments, combiningthe forces includes adding a numerical representation of the forcestogether to determine the combined force. In some embodiments, anumerical representation of each determined force is weighted beforebeing added together. For example, each numerical value of a determinedforce is weighted (e.g., multiplied by a scalar) based on an associatedsignal-to-noise ratio, an associated amplitude value, and/or anassociated distance value between a receiver and a location of a touchinput. In some embodiments, the weights of the forces being weightedmust sum to the number of forces being combined.

At 1206, the combined force is provided. In some embodiments, providingthe combined force includes providing a force intensity identifier to anapplication such as an application of application system 122 of FIG. 1B.In some embodiments, provided combined force is used to provide a userinterface interaction. In an alternative embodiment, rather thanproviding the combined force, the determined forces for each touch inputlocation point of a plurality of touch input location points areprovided.

FIG. 13 is a flowchart illustrating an embodiment of a process forprocessing a user touch input. The process of FIG. 13 may be implementedon application system 122 of FIG. 1B.

At 1302, one or more indicators associated with a location and a forceintensity of a user touch input are received. In some embodiments, theindicator(s) include data provided in step 910 of FIG. 9 and/or step1206 of FIG. 12. The location may indicate a location (e.g.,one-dimensional location) on a surface of a side of a device. In someembodiments, indicators associated with a sequence of locations andassociated force intensities are received. In some embodiments, the oneor more indicators are provided by touch detector 120 of FIG. 1B.

At 1304, a user command associated with the received indicators, if any,is detected. For example, a user presses a specific location on thetouch input surface with sufficient force to provide a user command.Because the user touch input may be indicated on sidewalls of a device,it may be necessary to determine whether a touch detected on the sidesurface of a device is a user command or a user simply holding/touchingthe device without a desire to provide a user command. In someembodiments, in order to distinguish between a user command and anon-command touch, a command is only registered if a detected touch wasprovided with sufficient force and/or speed. For example, detectedtouches below a threshold force and/or speed are determined to be not auser command input and ignored.

In some embodiments, one or more different regions of one or more touchinput surfaces are associated with different user commands and alocation of a touch input is utilized to identify which command has beenindicated. For example, locations/regions along one or more sides of adevice have been mapped to different corresponding functions/commands tovirtually mimic buttons on a side of a device. In one example, a forceapplied in a first area/region increases a volume, a force applied in asecond area/region decreases the volume, a force applied in a third areaindicates a “back” command, a force applied in a fourth area indicates a“home” command, and a force applied in a fifth area indicates a“multitasking” command. In order to indicate a specificfunction/command, the user may provide a gesture input (e.g., press,swipe up, swipe down, pinch in, pinch out, double tap, triple tap, longpress, short press, rub, etc.) with sufficient force at the locationassociated with the specific function/command.

In some embodiments, for a given area/region of a touch input area,different types of gestures (e.g., press, swipe up, swipe down, pinchin, pinch out, double tap, triple tap, long press, short press, rub,etc.) provided in the same region may correspond to different usercommands. For example, swiping up in a touch input area increases avolume and swiping down in the same touch input area decreases a volume.

In some embodiments, the amount of force of the user indication maycorrespond to different user commands. For example, although the amountof force must be greater than a threshold value to indicate a usercommand, the amount of force (e.g., once it meets the threshold) maycorrespond to different commands based on additional force thresholds(e.g., force above a first threshold and below a second thresholdindicates a primary click and force greater than the second thresholdindicates a secondary click) and/or a magnitude value of the usercommand (e.g., speed of volume increase corresponds to amount of force).

In some embodiments, the speed of the user indication on the touch inputsurface may be varied to indicate different user commands. For example,a speed of a swipe touch gesture indicates a speed of scrolling. In someembodiments, the number of simultaneous user touch indications (e.g.,number of fingers) and their locations (e.g., respectivelocations/areas/regions of the user indications) may be varied toindicate different user commands. For example, when a device is in aninactive state, a user may squeeze sides of the device with a finger onone sidewall of the device and another finger on another sidewall of thedevice at the same time to wake the device to an active state (e.g.,turn on display) while force applied on only one side indicates a volumecontrol command. In some embodiments, by detecting the locations andsizes of a multi-touch input and matching it to known patterns, it isdetermined whether a left or a right hand of a user is holding thedevice and determined information is utilized to affect a function ofthe device (e.g., display a menu on a left or a right of a screen basedon which hand is holding the device).

In some embodiments, once the user command has been successfullyidentified, a confirmation indication is provided to indicate to a userthat the user command has been successfully detected. For example, avisual (e.g., visual flash), an audio (e.g., chime), and/or a tactile(e.g., vibration/haptic feedback) indication is provided uponsuccessfully detecting the user command.

At 1306, the detected user command is executed. For example, theidentified user command is provided to an application and/or operatingsystem for execution/implementation.

Although the foregoing embodiments have been described in some detailfor purposes of clarity of understanding, the invention is not limitedto the details provided. There are many alternative ways of implementingthe invention. The disclosed embodiments are illustrative and notrestrictive.

What is claimed is:
 1. A system for detecting a touch input, comprising:a plurality of transmitters coupled to a propagating medium, whereineach of the plurality of transmitters is configured to emit apropagating signal that propagates through the propagating medium; aplurality of receivers coupled to the propagating medium, wherein eachof the plurality of receivers is configured to detect one or more of thepropagating signals that have been disturbed by the touch input, and theplurality of transmitters and the plurality of receivers are coupled tothe propagating medium on an internal side of a device sidewall; and aprocessor configured to analyze one or more detected propagating signalsthat have been disturbed by the touch input to identify the touch inputon an external surface of the device sidewall, wherein the processor isconfigured to analyze the one or more detected propagating signalsincluding by being configured to identify a portion of the one or moredetected propagating signals that has been disturbed by the touch inputand propagated through the device sidewall and determine an amount of aforce magnitude of the touch input including by comparing to a referencevalue a magnitude of a signal amplitude associated with the identifiedportion of the one or more detected propagating signals emitted prior tothe touch input and disturbed by the touch input, and the magnitude ofthe signal amplitude associated with the identified portion indicates anamount of disturbance to one or more of the propagating signals emittedprior to the touch input and propagated through the device sidewall;wherein first sides of the plurality of transmitters and the pluralityof receivers are mounted along a common axis in a line on a flex cablethat includes patterned conductors that connect the transmitters and thereceivers to a circuit board connector of the flex cable, and secondsides of the plurality of transmitters and the plurality of receivers onthe same flex cable are coupled to the internal side of the devicesidewall opposite an external touch input side of the device sidewallvia an adhesive on each of the second sides different from the firstsides mounted on the flex cable, and a receiver included in the line oftransmitters and receivers on the flex cable is equidistant from twoadjacent transmitters included in the line of transmitters and receiverson the flex cable.
 2. The system of claim 1, wherein identifying thetouch input includes identifying a location of the touch input on aone-dimensional axis on the external surface of the device sidewall. 3.The system of claim 1, wherein the propagating medium is metal.
 4. Thesystem of claim 1, wherein at least two of the propagating signalsemitted by the transmitters include different signal content.
 5. Thesystem of claim 1, wherein a second device sidewall of the system isconfigured to accept a second touch input.
 6. The system of claim 1,wherein the propagating medium is at least a part of a device housingand the internal side of the device sidewall is within the devicehousing.
 7. The system of claim 1, wherein one or more of the pluralityof transmitters are coupled to the propagating medium in a pocket withinthe device sidewall.
 8. The system of claim 1, wherein the adhesive isan epoxy.
 9. The system of claim 1, wherein one or more of the pluralityof transmitters and the plurality of receivers are mounted on fingersextending from the linear flex cable.
 10. The system of claim 1, whereinidentifying the touch input includes analyzing the one or more detectedpropagating signals that have been disturbed by the touch input toidentify a force of the touch input.
 11. The system of claim 10, whereinthe force of the touch input is utilized to detect a user commandassociated with the touch input.
 12. The system of claim 11, wherein theuser command is detected in the event the force is greater than athreshold value.
 13. The system of claim 1, wherein a detected durationof the touch input is utilized to identify a user command associatedwith the touch input.
 14. The system of claim 1, wherein a detectedgesture of the touch input is utilized to identify a user commandassociated with the touch input.
 15. The system of claim 1, wherein thetouch input was provided on a physical button and the touch input wasdetected without physically actuating the physical button.
 16. Thesystem of claim 1, wherein a plurality of touch inputs are detected byanalyzing the detected propagating signals that have been disturbed bythe touch inputs.
 17. The system of claim 1, wherein the propagatingmedium is not a part of a display surface.
 18. The system of claim 1,wherein the plurality of transmitters and the plurality of receivers aretransducers.
 19. The system of claim 1, wherein the propagating signalsare ultrasonic signals.
 20. A method for detecting a touch input,comprising: emitting from a plurality of transmitters coupled to apropagating medium, propagating signals through the propagating medium;receiving at a plurality of receivers coupled to the propagating mediumone or more of the propagating signals that have been disturbed by thetouch input, wherein the plurality of transmitters and the plurality ofreceivers are coupled to the propagating medium on an internal side of adevice sidewall; and using a processor to analyze one or more detectedpropagating signals that have been disturbed by the touch input toidentify the touch input on an external surface of the device sidewall,wherein analyzing the one or more detected propagating signals includesidentifying a portion of the one or more detected propagating signalsthat has been disturbed by the touch input and propagated through thedevice sidewall and determining an amount of a force magnitude of thetouch input including by comparing to a reference value a magnitude of asignal amplitude associated with the identified portion of the one ormore detected propagating signals emitted prior to the touch input anddisturbed by the touch input, and the magnitude of the signal amplitudeassociated with the identified portion indicates an amount ofdisturbance to one or more of the propagating signals emitted prior tothe touch input and propagated through the device sidewall; whereinfirst sides of the plurality of transmitters and the plurality ofreceivers are mounted along a common axis in a line on a flex cable thatincludes patterned conductors that connect the transmitters and thereceivers to a circuit board connector of the flex cable, and secondsides of the plurality of transmitters and the plurality of receivers onthe same flex cable are coupled to the internal side of the devicesidewall opposite an external touch input side of the device sidewallvia an adhesive on each of the second sides different from the firstsides mounted on the flex cable, and a receiver included in the line oftransmitters and receivers on the flex cable is equidistant from twoadjacent transmitters included in the line of transmitters and receiverson the flex cable.